home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / ste / mega / booter.lzh / BOOTER.S next >
Text File  |  1993-12-04  |  3KB  |  87 lines

  1. ; Booter v 1.2 26.10.1993 by Holger Janz
  2. ; to boot game disks at 16MHz from desktop
  3.  
  4. anfang:         pea     text            ;text output
  5.                 move.w  #9,-(SP)
  6.                 trap    #1
  7.                 addq.l  #6,SP
  8.  
  9.                 move.w  #1,-(SP)        ;key request
  10.                 trap    #1
  11.                 addq.l  #2,SP
  12.  
  13.                 cmp.b   #'q',D0
  14.                 beq     ende            ;if pressed <q> then end
  15.  
  16.                 pea     boottext        ;text output
  17.                 move.w  #9,-(SP)
  18.                 trap    #1
  19.                 addq.l  #6,SP
  20.  
  21.                 move.w  #$01,-(SP)
  22.                 move.w  #$00,-(SP)
  23.                 move.w  #$00,-(SP)
  24.                 move.w  #$01,-(SP)
  25.                 move.w  #$00,-(SP)
  26.                 move.l  #$00,-(SP)
  27.                 pea     buffer
  28.                 move.w  #$08,-(SP)      ;Xbios 8
  29.                 trap    #14             ;read boot sector
  30.                 lea     $14(SP),SP
  31.  
  32.                 tst.l   D0              ;error ?
  33.                 bne     anfang          ;then back
  34.  
  35.                 movea.l #buffer,A0      ;test magic number $1234
  36.                 move.l  #$00,D1
  37.                 move.w  #$FF,D0
  38. loop1:          add.w   (A0),D1
  39.                 adda.l  #$02,A0
  40.                 dbra    D0,loop1
  41.                 cmp.w   #$1234,D1
  42.                 bne     anfang          ;not executable
  43.  
  44.                 move.w  #$00,-(SP)      ;low rez
  45.                 move.l  #-$01,-(SP)
  46.                 move.l  #-$01,-(SP)
  47.                 move.w  #$05,-(SP)
  48.                 trap    #14
  49.                 lea     $0C(SP),SP
  50.  
  51.                 clr.l   -(SP)           ;switch to Supervisor-Modus
  52.                 move.w  #$20,-(SP)
  53.                 trap    #1
  54.                 addq.l  #6,SP
  55.                 move.l  D0,-(SP)        ;resulte to stack
  56.  
  57.                 bsr.s   buffer          ;jump to boot routine
  58.  
  59.                 move.w  #$20,-(SP)      ;back to User-Modus
  60.                 trap    #1
  61.                 addq.l  #6,SP
  62.  
  63.                 move.w  #$01,-(SP)      ;back to mid rez
  64.                 move.l  #-$01,-(SP)
  65.                 move.l  #-$01,-(SP)
  66.                 move.w  #$05,-(SP)
  67.                 trap    #14
  68.                 lea     $0C(SP),SP
  69.  
  70.  
  71. ende:           pea     exittext        ;text output
  72.                 move.w  #9,-(SP)
  73.                 trap    #1
  74.                 addq.l  #6,SP
  75.  
  76.                 clr.w   -(SP)           ;bye
  77.                 trap    #1
  78.  
  79. buffer:         DS.B 512
  80. text:           DC.B $1B,$45,' BOOTER V 1.2 by H.Janz 93',$0A,$0D
  81.                 DC.B '-----------------------------',$0A,$0D
  82.                 DC.B 'put boot-disk into drive A and press a key',$0A,$0D
  83.                 DC.B '<Q> quit',$0A,$0D,$00
  84. boottext:       DC.B $0A,$0D,'load and execute boot sectors',$0A,$0D,$00
  85. exittext:       DC.B $0A,$0D,'quit program',$0A,$0D,$00
  86.                 END
  87.